<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="root"></div>

    <script src="../lib/react.js"></script>
    <script src="../lib/react-dom.js"></script>
    <script src="../lib/babel.js"></script>

    <script type="text/babel">
        // let message = "Hello World"
        // function btnClick(){
        //     console.log("btnClick");
        //     message = "Hello react"
        //     rootRender()
        // }
    // const root = ReactDOM.createRoot(document.querySelector("#root"))
    // function rootRender(){
    //     root.render(
    //     <div>
    //         <h2>{message}</h2>
    //         <button onClick={btnClick}> 修改</button>
    //     </div>
    //     )
    // }
    // rootRender()
    // 使用组件进行重构代码
    // 类组件和函数式组件

    class App extends React.Component {
        // 组件数据
        constructor(){
            super()
            this.state={
                message:"hello world",
            }

            // 对需要绑定的方法，提前绑定好this

        }
        // 组件方法 (实例方法)
       
        // 渲染内容  render方法
        render(){
            const {message } = this.state
       
            //书写规范
            //1.jsx结构中只能有一个根元素
            // 2.jsx结构通常会包裹一个()，将整sx当做一个整体，实现换行
            // 3.jsx可以是单标签,也可以是双标签,但是单标签必须以/>结尾
            return (
                <div>
                    <h2>{message}</h2>
                </div>
            )
        }
    }

    // 将组件渲染到界面上
    const root = ReactDOM.createRoot(document.querySelector("#root"))
    root.render(<App/>)
    </script>
</body>
</html>